package com.familytree.service;

import com.familytree.dto.MemberTreeDTO;
import com.familytree.model.Member;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

public interface MemberService {
    Page<Member> findAll(String search, Pageable pageable);
    Member findById(Long id);
    List<Member> search(String query, String type);
    Member create(Member member);
    Member update(Long id, Member member);
    void delete(Long id);
    Member addSpouse(Long memberId, Long spouseId, String marriageDate);
    void deleteSpouse(Long memberId);
    Member addChild(Long parentId, Long childId);
    Map<String, Object> getFamilyTree(Long memberId);
    MemberTreeDTO getFamilyTree();
} 